package com.smt.take.model.dao

import android.content.Context
import android.database.sqlite.SQLiteDatabase
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper
import com.j256.ormlite.support.ConnectionSource
import com.j256.ormlite.table.TableUtils
import com.smt.take.model.beans.RecepitAddressBean
import com.smt.take.model.beans.UserBean

/**
 * OrmLiteSqliteOpenHelper：
 * Context context - 上下文
 * String databaseName - 数据库名称
 * CursorFactory factory - 返回集工厂
 * int databaseVersion - 数据库版本
 *
 * app版本    数据库版本
 * 1.1版本       1         用户登录
 * 1.3版本       2         地址管理
 */
class TakeOutOpenHelper(context: Context) :
    OrmLiteSqliteOpenHelper(context, "take_out_kotlin.db", null, 2) {

    override fun onCreate(db: SQLiteDatabase?, connectionSource: ConnectionSource?) {
        // 创建user表
        // TableUtils.createTable(connectionSource,本地bean)
        TableUtils.createTable(connectionSource, UserBean::class.java)

        // 创建地址表
        TableUtils.createTable(connectionSource, RecepitAddressBean::class.java)
    }

    override fun onUpgrade(
        db: SQLiteDatabase?,
        connectionSource: ConnectionSource?,
        oldVersion: Int,
        newVersion: Int
    ) {
        // 更新表
        // 升级app的用户会执行此方法
        TableUtils.createTable(connectionSource, RecepitAddressBean::class.java)
    }
}
